﻿$(document).ready(function () {
    data = new Date();
    dia = data.getDate();
    mes = data.getMonth();
    ano = data.getFullYear();

    meses = new Array(12);

    meses[0] = "Janeiro";
    meses[1] = "Fevereiro";
    meses[2] = "Março";
    meses[3] = "Abril";
    meses[4] = "Maio";
    meses[5] = "Junho";
    meses[6] = "Julho";
    meses[7] = "Agosto";
    meses[8] = "Setembro";
    meses[9] = "Outubro";
    meses[10] = "Novembro";
    meses[11] = "Dezembro";

    var now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var timeValue = "" + ((hours > 12) ? hours - 12 : hours)
    timeValue += ((minutes < 10) ? ":0" : ":") + minutes
    timeValue += (hours >= 12) ? " PM" : " AM"
    timerRunning = true;

    $("#TiposDropDownList").change(function () {
        $("#MarcasDropDownList").html("");
        $("#VeiculosDropDownList").html("");
        $("#ModelosDropDownList").html("");
        var valor = $(this).val();
        if (valor !== "") {
            LoadMarcas(valor);
        }
    });

    $("#MarcasDropDownList").change(function () {
        $("#VeiculosDropDownList").html("");
        $("#ModelosDropDownList").html("");
        var valor = $(this).val();
        if (valor !== "") {
            LoadVeiculos($("#TiposDropDownList").val(), valor);
        }
    });

    $("#VeiculosDropDownList").change(function () {
        $("#ModelosDropDownList").html("");
        var valor = $(this).val();
        if (valor !== "") {
            LoadModelos($("#TiposDropDownList").val(), $("#MarcasDropDownList").val(), valor);
        }
    });

    $('#btnShowVeiculo').click(function () {
        if ((!$("#MarcasDropDownList").val()) || (!$("#VeiculosDropDownList").val()) || (!$("#ModelosDropDownList").val())) {
            $("#resultado").html('<b>'+"Erro: "+'</b>'+"Favor preencher todos os campos!");
        } else {
            $("#resultado").html('<i>'+"Buscando..."+'</i>');
            var url = "https://jsonp.nodejitsu.com/?callback=&url=http://fipeapi.appspot.com/api/1/" + $("#TiposDropDownList").val() + "/veiculo/" + $("#MarcasDropDownList").val() + "/" + $("#VeiculosDropDownList").val() + "/" + $("#ModelosDropDownList").val() + ".json";
            $.getJSON(url, function (data) {
                var vlrOtig = data.preco;
                var vlrOtig90 = moneyTextToFloat(data.preco);
                var vlrOtig80 = moneyTextToFloat(data.preco);
                var vlrOtig70 = moneyTextToFloat(data.preco);
                $("#resultado").html('<b>' + "Mês de referência: " + '</b>' + data.referencia + '<br />' +
                    '<b>' + "Código FIPE: " + '</b>' + data.fipe_codigo + '<br />' +
                    '<b>' + "Marca: " + '</b>' + data.fipe_marca + '<br />' +
                    '<b>' + "Modelo: " + '</b>' + data.veiculo + '<br />' +
                    '<b>' + "Ano modelo: " + '</b>' + data.name + '<br />' +
                    '<b>' + "Preço 100% FIPE: " + '</b>' + vlrOtig + '<br />' +
                    '<b>' + "Preço 90% FIPE: " + '</b>' + converteFloatMoeda(vlrOtig90 * 0.9) + '<br />' +
                    '<b>' + "Preço 80% FIPE: " + '</b>' + converteFloatMoeda(vlrOtig80 * 0.8) + '<br />' +
                    '<b>' + "Preço 70% FIPE: " + '</b>' + converteFloatMoeda(vlrOtig70 * 0.7) + '<br />' +
                    '<b>' + "Data da Consulta: " + '</b>' + dia + " de " + meses[mes] + " de " + ano + " " + timeValue);
            });
        }
    });

});

function LoadMarcas(tipo) {
    $("#MarcasDropDownList").append("<option value=" + "" + ">" + "Buscando..." + "</option>");
    $.getJSON("/Marcas/LoadMarcas", { tipo: tipo }, function (data) {
        $("#MarcasDropDownList").html("");
        $("#MarcasDropDownList").append("<option value=" + "" + ">" + "Selecione uma marca" + "</option>");
        $.each(data, function (index, marcas) {
            $("#MarcasDropDownList").append("<option value=" + marcas.id + ">" + marcas.fipe_name + "</option>");
        });
    });
}

function LoadVeiculos(tipo, marca) {
    $("#VeiculosDropDownList").append("<option value=" + "" + ">" + "Buscando..." + "</option>");
    $.getJSON("/Veiculos/LoadVeiculos", { tipo: tipo, marca: marca }, function (data) {
        $("#VeiculosDropDownList").html("");
        $("#VeiculosDropDownList").append("<option value=" + "" + ">" + "Selecione um veículo" + "</option>");
        $.each(data, function (index, veiculos) {
            $("#VeiculosDropDownList").append("<option value=" + veiculos.id + ">" + veiculos.name + "</option>");
        });
    });
}

    function LoadModelos(tipo, marca, veiculo) {
        $("#ModelosDropDownList").append("<option value=" + "" + ">" + "Buscando..." + "</option>");
        $.getJSON("/Modelos/LoadModelos", { tipo: tipo, marca: marca, veiculo: veiculo }, function (data) {
            $("#ModelosDropDownList").html("");
            $("#ModelosDropDownList").append("<option value=" + "" + ">" + "Selecione um Ano modelo" + "</option>");
            $.each(data, function (index, modelos) {
                $("#ModelosDropDownList").append("<option value=" + modelos.id + ">" + modelos.name + "</option>");
            });
    });
        
    }
    function moneyTextToFloat(text) {
        var cleanText = text.replace(".", "").replace("R$ ","");
        cleanText = cleanText.replace(",", ".");
        cleanText = parseFloat(cleanText);
        return parseFloat(cleanText);
    }

    function converteFloatMoeda(valor) {
        var inteiro = null, decimal = null, c = null, j = null;
        var aux = new Array();
        valor = "" + valor;
        c = valor.indexOf(".", 0);
        //encontrou o ponto na string
        if (c > 0) {
            //separa as partes em inteiro e decimal
            inteiro = valor.substring(0, c);
            decimal = valor.substring(c + 1, valor.length);
        } else {
            inteiro = valor;
        }

        //pega a parte inteiro de 3 em 3 partes
        for (j = inteiro.length, c = 0; j > 0; j -= 3, c++) {
            aux[c] = inteiro.substring(j - 3, j);
        }

        //percorre a string acrescentando os pontos
        inteiro = "";
        for (c = aux.length - 1; c >= 0; c--) {
            inteiro += aux[c] + '.';
        }
        //retirando o ultimo ponto e finalizando a parte inteiro
        inteiro = inteiro.substring(0, inteiro.length - 1);

        decimal = parseInt(decimal);
        if (isNaN(decimal)) {
            decimal = "00";
        } else {
            decimal = "" + decimal;
            if (decimal.length === 1) {
                decimal = decimal + "0";
            }
        }
        
        valor = "R$ " + inteiro + "," + decimal.substr(0,2);
        
        return valor;

    }